#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "operate.h"
#include "menu.h"
#include "myDatatype.h"

/*超市管理系统页面主菜单*/
void Menu(struct Node *supPhead, struct Node *comPhead, struct Node *staPhead, struct Node *masterPurPhead, struct Node *detailPurPhead)
{
	while (1)
	{
		system("cls");
		printf("\n\t\t---------------[超市进存销管理系统]---------------");
		printf("\n\t\t\t\t1 、管理员用户登录");
		printf("\n\t\t\t\t2 、普通用户登录 ");
		printf("\n\t\t\t\t0 、退出管理系统 ");
		printf("\n\t\t--------------------------------------------------");
		
		char option;
		
		printf("\n\t\t请输入(0-2):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0': 			/*退出管理系统*/
				{
					printf("\n\t\t成功退出 [超市进存销管理系统] ！");
					return;
				}
			case '1':				/*管理员用户*/
				{
					MenuManager(supPhead, comPhead, staPhead, masterPurPhead, detailPurPhead);
					break;
				}
			case '2':				/*普通用户*/
				{
					MenuPerson();
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

/*管理员操作菜单*/
void MenuManager(struct Node *supPhead, struct Node *comPhead, struct Node *staPhead, struct Node *masterPurPhead, struct Node *detailPurPhead)
{
	while (1)
	{
		system("cls");
		printf("\n\t\t-------------------[管理员用户]-------------------");
		printf("\n\t\t\t\t1 、[供应商管理]");
		printf("\n\t\t\t\t2 、[商品管理]");
		printf("\n\t\t\t\t3 、[员工管理]");
		printf("\n\t\t\t\t4 、[采购管理]");
		printf("\n\t\t\t\t0 、返回[超市进存销管理系统]");
		printf("\n\t\t--------------------------------------------------");
		
		char option;
		
		printf("\n\t\t请输入(0-4):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功返回 [超市进存销管理系统] ！");
					return;
				}
			case '1':	/*供应商管理菜单*/
				{
					MenuSupplier(supPhead);			
					break;
				}
			case '2':	/*商品管理菜单*/
				{
					MenuCommodity(comPhead);		
					break;
				}
			case '3':	/*员工管理菜单*/
				{
					MenuStaff(staPhead);				
					break;
				}
			case '4':	/*采购管理菜单*/
				{
					MenuPurchase(masterPurPhead, detailPurPhead);				
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuSupplier(struct Node *phead)/*供应商管理操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t-----------------[供应商管理]---------------------");
		printf("\n\t\t\t\t1 、录入供应商数据");
		printf("\n\t\t\t\t2 、查询供应商信息");
		printf("\n\t\t\t\t3 、修改供应商信息");
		printf("\n\t\t\t\t4 、删除供应商数据");
		printf("\n\t\t\t\t0 、返回 [管理员用户] 菜单");
		printf("\n\t\t--------------------------------------------------");	
		
		char option;
		
		printf("\n\t\t请输入(0-4):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功返回 [管理员用户] 菜单！");
					return;
				}
			case '1':
				{
					while (1)
					{
						char judge;		/*判断是否继续输入*/
						
						printf("\n\t\t提示：输入n或N结束输入，按其他键则继续输入...");					
						fflush(stdin);
						scanf("%c", &judge);
						
						if (judge=='n' || judge=='N')
						{
							printf("\n\t\t输入完成!");
							break;
						}
						else
						{
							phead = AddList(phead, InputSup);
						}
					}
					break;
				}
			case '2':
				{
					Traversal(phead, ShowSup);		/*查询所有供应商信息*/
					break;
				}
			case '3':
				{
					MenuSupplierChange(phead);		/*修改数据*/
					break;
				}
			case '4':
				{
					MenuSupplierDelete(phead);		/*删除数据*/
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuSupplierChange(struct Node *phead)/*供应商管理修改操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t---------------修改供应商信息---------------");
		printf("\n\t\t 按1通过查找 [供应商编号] 进行修改信息操作");
		printf("\n\t\t 按2通过查找 [供应商名称] 进行修改信息操作");
		printf("\n\t\t 按3通过查找 [地址] 进行修改信息操作");
		printf("\n\t\t 按0返回 [供应商管理] 菜单");
		printf("\n\t\t--------------------------------------------");
		
		char option;
		int num;
		struct Node *p = NULL;
		struct Node *pnew = (struct Node *)malloc(sizeof(struct Node));
		
		p = phead->next;
		pnew->data = NULL;		
		
		printf("\n\t\t请输入(0-3):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功退出修改供应商信息功能！");
					return;
				}
			case '1':
				{
					char varNo[CAPACITY];
						
					printf("\n\t\t输入 [供应商编号]:");
					scanf("%s", varNo);
						
					while (p != NULL)
					{
						num = CompareSupNo(p->data, varNo);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [供应商编号] 查找到该供应商，接下来进行修改操作！\n\n");
						pnew->data = InputSup();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varNo, CompareSupNo);
						Traversal(phead, ShowSup);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该供应商！");
						printf("\n\t\t请重新选择操作！");
					}
					break;	
				}
			case '2':
				{
					char varName[CAPACITY];
						
					printf("\n\t\t输入 [供应商名称]:");
					scanf("%s", varName);
						
					while (p != NULL)
					{
						num = CompareSupName(p->data, varName);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [供应商名称] 查找到该供应商，接下来进行修改操作！\n\n");
						pnew->data = InputSup();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varName, CompareSupName);
						Traversal(phead, ShowSup);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该供应商！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			case '3':
				{
					char varAddress[CAPACITY];
						
					printf("\n\t\t输入 [地址]:");
					scanf("%s", varAddress);
						
					while (p != NULL)
					{
						num = CompareSupAddress(p->data, varAddress);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [地址] 查找到该供应商，接下来进行修改操作！\n\n");
						pnew->data = InputSup();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varAddress, CompareSupAddress);
						Traversal(phead, ShowSup);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该供应商！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuSupplierDelete(struct Node *phead)/*供应商管理删除操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t---------------删除供应商信息---------------");
		printf("\n\t\t 按1通过查找 [供应商编号] 进行删除信息操作");
		printf("\n\t\t 按2通过查找 [供应商名称] 进行删除信息操作");
		printf("\n\t\t 按3通过查找 [地址] 进行删除信息操作");
		printf("\n\t\t 按0返回 [供应商管理] 菜单");
		printf("\n\t\t--------------------------------------------");
		
		char option;
		int num;
		struct Node *p = NULL;
		struct Node *q = (struct Node *)malloc(sizeof(struct Node));
		
		p = phead->next;
		q->data = NULL;
		
		printf("\n\t\t请输入(0-3):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功退出删除供应商信息功能！");
					return;
				}
			case '1':
				{
					char varNo[CAPACITY];
						
					printf("\n\t\t输入 [供应商编号]:");
					scanf("%s", varNo);
						
					while (p != NULL)
					{
						num = CompareSupNo(p->data, varNo);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [供应商编号] 查找到该供应商，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varNo, CompareSupNo);
						printf("\n\t\t被删除的数据：\n");
						ShowSup(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowSup);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该供应商！");
						printf("\n\t\t请重新选择操作！");
					}
					break;	
				}
			case '2':
				{
					char varName[CAPACITY];
						
					printf("\n\t\t输入 [供应商名称]:");
					scanf("%s", varName);
						
					while (p != NULL)
					{
						num = CompareSupName(p->data, varName);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [供应商名称] 查找到该供应商，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varName, CompareSupName);
						printf("\n\t\t被删除的数据：\n");
						ShowSup(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowSup);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该供应商！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			case '3':
				{
					char varAddress[CAPACITY];
						
					printf("\n\t\t输入 [地址]:");
					scanf("%s", varAddress);
						
					while (p != NULL)
					{
						num = CompareSupAddress(p->data, varAddress);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [地址] 查找到该供应商，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varAddress, CompareSupAddress);
						printf("\n\t\t被删除的数据：\n");
						ShowSup(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowSup);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该供应商！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuCommodity(struct Node *phead)/*商品管理操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t------------------[商品管理]----------------------");
		printf("\n\t\t\t\t1 、录入商品数据");
		printf("\n\t\t\t\t2 、查询商品信息");
		printf("\n\t\t\t\t3 、修改商品信息");
		printf("\n\t\t\t\t4 、删除商品数据");
		printf("\n\t\t\t\t0 、返回 [管理员用户] 菜单");
		printf("\n\t\t--------------------------------------------------");
		
		char option;
		
		printf("\n\t\t请输入(0-4):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功返回 [管理员用户] 菜单！");
					return;
				}
			case '1':
				{
					char judge;		/*判断是否继续输入*/
					
					while (1)
					{
						
						printf("\n\t\t提示：输入n或N结束输入，按其他键则继续输入...");
						fflush(stdin);
						scanf("%c", &judge);

						if (judge=='n' || judge=='N')
						{
							printf("\n\t\t输入完成!");
							break;
						}
						else
						{
							phead = AddList(phead, InputCom);
						}
					}
					break;	
				}
			case '2':
				{
					Traversal(phead, ShowCom);
					break;	
				}
			case '3':
				{
					MenuCommodityChange(phead);
					break;	
				}
			case '4':
				{
					MenuCommodityDelete(phead);
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuCommodityChange(struct Node *phead)/*商品管理修改操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t----------------修改商品信息----------------");
		printf("\n\t\t 按1通过查找 [商品编号] 进行修改信息操作");
		printf("\n\t\t 按2通过查找 [商品名称] 进行修改信息操作");
		printf("\n\t\t 按0返回 [商品管理] 菜单");
		printf("\n\t\t--------------------------------------------");
		
		char option;
		int num;
		struct Node *p = NULL;
		struct Node *pnew = (struct Node *)malloc(sizeof(struct Node));
		
		p = phead->next;
		pnew->data = NULL;		
		
		printf("\n\t\t请输入(0-2):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功退出修改商品信息功能！");
					return;
				}
			case '1':
				{
					char varNo[CAPACITY];
						
					printf("\n\t\t输入 [商品编号]:");
					scanf("%s", varNo);
						
					while (p != NULL)
					{
						num = CompareComNo(p->data, varNo);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [商品编号] 查找到该商品，接下来进行修改操作！\n\n");
						pnew->data = InputCom();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varNo, CompareComNo);
						Traversal(phead, ShowCom);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该商品！");
						printf("\n\t\t请重新选择操作！");
					}
					break;	
				}
			case '2':
				{
					char varName[CAPACITY];
						
					printf("\n\t\t输入 [商品名称]:");
					scanf("%s", varName);
						
					while (p != NULL)
					{
						num = CompareComName(p->data, varName);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [商品名称] 查找到该商品，接下来进行修改操作！\n\n");
						pnew->data = InputCom();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varName, CompareComName);
						Traversal(phead, ShowCom);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该商品！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuCommodityDelete(struct Node *phead)/*商品管理删除操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t----------------删除商品信息----------------");
		printf("\n\t\t 按1通过查找 [商品编号] 进行删除信息操作");
		printf("\n\t\t 按2通过查找 [商品名称] 进行删除信息操作");
		printf("\n\t\t 按0返回 [商品管理] 菜单");
		printf("\n\t\t--------------------------------------------");
		
		char option;
		int num;
		struct Node *p = NULL;
		struct Node *q = (struct Node *)malloc(sizeof(struct Node));
		
		p = phead->next;
		q->data = NULL;
		
		printf("\n\t\t请输入(0-3):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功退出删除商品信息功能！");
					return;
				}
			case '1':
				{
					char varNo[CAPACITY];
						
					printf("\n\t\t输入 [商品编号]:");
					scanf("%s", varNo);
						
					while (p != NULL)
					{
						num = CompareComNo(p->data, varNo);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [商品编号] 查找到该商品，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varNo, CompareComNo);
						printf("\n\t\t被删除的数据：\n");
						ShowCom(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowCom);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该商品！");
						printf("\n\t\t请重新选择操作！");
					}
					break;	
				}
			case '2':
				{
					char varName[CAPACITY];
						
					printf("\n\t\t输入 [商品名称]:");
					scanf("%s", varName);
						
					while (p != NULL)
					{
						num = CompareComName(p->data, varName);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [商品名称] 查找到该商品，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varName, CompareComName);
						printf("\n\t\t被删除的数据：\n");
						ShowCom(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowCom);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该商品！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuStaff(struct Node *phead)/*员工管理操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t------------------[员工管理]----------------------");
		printf("\n\t\t\t\t1 、录入员工数据");
		printf("\n\t\t\t\t2 、查询员工信息");
		printf("\n\t\t\t\t3 、修改员工信息");
		printf("\n\t\t\t\t4 、删除员工数据");
		printf("\n\t\t\t\t0 、返回 [管理员用户] 菜单");
		printf("\n\t\t--------------------------------------------------");
		
		char option;
		
		printf("\n\t\t请输入(0-4):");
		fflush(stdin);
		scanf("%c", &option);
			
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功返回 [管理员用户] 菜单！");
					return;
				}
			case '1':
				{
					char judge;		/*判断是否继续输入*/
					
					while (1)
					{
						
						printf("\n\t\t提示：输入n或N结束输入，按其他键则继续输入...");
						fflush(stdin);
						scanf("%c", &judge);

						if (judge=='n' || judge=='N')
						{
							printf("\n\t\t输入完成!");
							break;
						}
						else
						{
							phead = AddList(phead, InputSta);
						}
					}
					break;
				}
			case '2':
				{
					Traversal(phead, ShowSta);
					break;
				}
			case '3':
				{
					MenuStaffChange(phead);
					break;	
				}
			case '4':
				{
					MenuStaffDelete(phead);
					break;	
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuStaffChange(struct Node *phead)/*员工管理修改操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t----------------修改员工信息----------------");
		printf("\n\t\t 按1通过查找 [员工编号] 进行修改信息操作");
		printf("\n\t\t 按2通过查找 [员工名称] 进行修改信息操作");
		printf("\n\t\t 按0返回 [员工管理] 菜单");
		printf("\n\t\t--------------------------------------------");
		
		char option;
		int num;
		struct Node *p = NULL;
		struct Node *pnew = (struct Node *)malloc(sizeof(struct Node));
		
		p = phead->next;
		pnew->data = NULL;		
		
		printf("\n\t\t请输入(0-2):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功退出修改员工信息功能！");
					return;
				}
			case '1':
				{
					char varNo[CAPACITY];
						
					printf("\n\t\t输入 [员工编号]:");
					scanf("%s", varNo);
						
					while (p != NULL)
					{
						num = CompareStaNo(p->data, varNo);
						
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [员工编号] 查找到该员工，接下来进行修改操作！\n\n");
						pnew->data = InputSta();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varNo, CompareStaNo);
						Traversal(phead, ShowSta);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该员工！");
						printf("\n\t\t请重新选择操作！");
					}
					break;	
				}
			case '2':
				{
					char varName[CAPACITY];
						
					printf("\n\t\t输入 [员工名称]:");
					scanf("%s", varName);
						
					while (p != NULL)
					{
						num = CompareStaName(p->data, varName);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [员工名称] 查找到该员工，接下来进行修改操作！\n\n");
						pnew->data = InputSta();
						pnew->next = NULL;
							
						printf("\n\t\t修改后：\n");
						Change(phead, pnew, varName, CompareStaName);
						Traversal(phead, ShowSta);
						
						printf("\n\t\t修改完成！");
					}
					else 
					{
						printf("\n\t\t未找到该员工！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuStaffDelete(struct Node *phead)/*员工管理删除操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t----------------删除员工信息----------------");
		printf("\n\t\t 按1通过查找 [员工编号] 进行删除信息操作");
		printf("\n\t\t 按2通过查找 [员工名称] 进行删除信息操作");
		printf("\n\t\t 按0返回 [员工管理] 菜单");
		printf("\n\t\t--------------------------------------------");
		
		char option;
		int num;
		struct Node *p = NULL;
		struct Node *q = (struct Node *)malloc(sizeof(struct Node));
		
		p = phead->next;
		q->data = NULL;
		
		printf("\n\t\t请输入(0-3):");
		fflush(stdin);
		scanf("%c", &option);
		
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功退出删除商品信息功能！");
					return;
				}
			case '1':
				{
					char varNo[CAPACITY];
						
					printf("\n\t\t输入 [员工编号]:");
					scanf("%s", varNo);
						
					while (p != NULL)
					{
						num = CompareStaNo(p->data, varNo);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [员工编号] 查找到该商品，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varNo, CompareStaNo);
						printf("\n\t\t被删除的数据：\n");
						ShowSta(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowSta);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该员工！");
						printf("\n\t\t请重新选择操作！");
					}
					break;	
				}
			case '2':
				{
					char varName[CAPACITY];
						
					printf("\n\t\t输入 [员工名称]:");
					scanf("%s", varName);
						
					while (p != NULL)
					{
						num = CompareStaName(p->data, varName);
							
						if (num == 0)
						{
							break;
						}
							
						p = p->next;
					}
						
					if (p != NULL)
					{
						printf("\n\t\t成功通过 [员工名称] 查找到该员工，接下来进行删除操作！\n\n");
						
						q = Delete(phead, varName, CompareStaName);
						printf("\n\t\t被删除的数据：\n");
						ShowSta(q->data);
						
						printf("\n\t\t删除后：\n");
						Traversal(phead, ShowSta);
						
						printf("\n\t\t删除完成！");
					}
					else 
					{
						printf("\n\t\t未找到该员工！");
						printf("\n\t\t请重新选择操作！");
					}
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuPurchase(struct Node *mPhead, struct Node *dPhead)/*采购管理操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t------------------[采购管理]----------------------");
		printf("\n\t\t\t\t1 、[主表数据操作] 菜单");
		printf("\n\t\t\t\t2 、[明细数据操作] 菜单");
		printf("\n\t\t\t\t0 、返回[管理员用户菜单]");
		printf("\n\t\t--------------------------------------------------");	
		
		char option;
		
		printf("\n\t\t请输入(0-2):");
		fflush(stdin);
		scanf("%c", &option);
			
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功返回 [管理员用户菜单] ！");
					return;
				}
			case '1':
				{
//					MenuMasterPurchase(mPhead);		未编写
					break;
				}
			case '2':
				{
//					MenuDetailPurchase(dPhead);		未编写
					break;
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");
	}
}

void MenuPerson()/*普通用户操作菜单*/
{
	while (1)
	{
		system("cls");
		printf("\n\t\t-------------------[普通用户]---------------------");
		printf("\n\t\t\t\t1 、查询个人信息");
		printf("\n\t\t\t\t2 、查询所有商品信息");
		printf("\n\t\t\t\t3 、查询所有采购信息");
		printf("\n\t\t\t\t0 、返回[超市进存销管理系统]");
		printf("\n\t\t--------------------------------------------------");	
		
		char option;
		
		printf("\n\t\t请输入(0-3):");
		fflush(stdin);
		scanf("%c", &option);
			
		switch (option)
		{
			case '0':
				{
					printf("\n\t\t成功返回 [超市进存销管理系统] !");
					return;
				}
			case '1':
				{
					break;
				}
			case '2':
				{
					break;
				}
			case '3':
				{
					break;		
				}
			default:
				{
					printf("\n\t\t输入无效，请重新输入！");
					break;
				}
		}
		printf("\n\n\t\t");
		system("pause");	
	}
}
